﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Kopytko.BoardGame
{
    public class Pionek : Figura
    {
        public Pionek(Color kolor, Pole pozycja)
        {
            Kolor = kolor;
            Symbol = 'p';
            Pozycja = pozycja;
        }
        public Pionek(Figura pierwowzor)
        {
            Kolor = pierwowzor.GetKolor();
            Symbol = pierwowzor.Symbol;
            Pozycja = new Pole(pierwowzor.GetPozycja());
        }
        public override List<Ruch> PobierzDostepneRuchy(Plansza plansza)
        {
            if (ListaDostepnychRuchow == null)
            {
                ListaDostepnychRuchow = new List<Ruch>();
                int wektorY = -1;
                if (Kolor == Color.Black) wektorY = 1;
                if (plansza.PoleDostepneDoRuchu(Pozycja + new Pole(0, wektorY), Kolor))
                {
                    ListaDostepnychRuchow.Add(new Ruch(Pozycja, Pozycja + new Pole(0, wektorY)));
                    if (!this.FiguraWykonalaRuch()
                        && plansza.PoleDostepneDoRuchu(Pozycja + new Pole(0, 2 * wektorY), Kolor))
                    {
                        ListaDostepnychRuchow.Add(new Ruch(Pozycja, Pozycja + new Pole(0, 2 * wektorY)));
                    }
                }
                if (plansza.PoleDostepneDoBicia(Pozycja + new Pole(1, wektorY), Kolor))
                {
                    ListaDostepnychRuchow.Add(new Ruch(Pozycja, Pozycja + new Pole(1, wektorY)));
                }
                if (plansza.PoleDostepneDoBicia(Pozycja + new Pole(-1, wektorY), Kolor))
                {
                    ListaDostepnychRuchow.Add(new Ruch(Pozycja, Pozycja + new Pole(-1, wektorY)));
                }
            }
            return ListaDostepnychRuchow;
        }
        public override bool JestKoniem()
        {
            return false;
        }
        public override bool JestKrolem()
        {
            return false;
        }
        public override bool JestKrolowa()
        {
            return false;
        }
        public override bool JestLaufrem()
        {
            return false;
        }
        public override bool JestPionkiem()
        {
            return true;
        }
        public override bool JestPuste()
        {
            return false;
        }
        public override bool JestWieza()
        {
            return false;
        }
    }
}
